"""
作业需求:
角色:学校、学员、课程、讲师、完成下面的要求
1. 创建北京、上海 2 所学校
2. 创建linux , python , go 3个课程 ， linux\py 在北京开， go 在上海开
3. 课程包含，周期，价格，通过学校创建课程
4. 通过学校创建班级， 班级关联课程、讲师
5. 创建学员时，选择学校，关联班级
6. 创建讲师角色时要关联学校，
7. 提供两个角色接口
   7.1 学员视图， 可以注册， 交学费， 选择班级，
   7.2 讲师视图， 讲师可管理自己的班级， 上课时选择班级， 查看班级学员列表 ， 修改所管理的学员的成绩
   7.3 管理视图，创建讲师， 创建班级，创建课程
8. 上面的操作产生的数据都通过pickle序列化保存到文件里
"""
import pickle
import uuid
import os

class School(object):

    def __init__(self, name, random_str):
        self.name = name
        self.random_str = random_str

    def save(self):
        fw = open("./data/{}.txt".format(self.random_str), "wb")
        pickle.dump(self, fw, 0)
        fw.close()

    def __str__(self):
        return self.name #没有__str__方法,直接print(obj)返回的是对象的内存地址

    @staticmethod   #不依赖于对象所以直接用静态方法
    def get_all():
        obj_list = []
        filepath = os.listdir("./data")
        for file in filepath:
            fw = open("./data/{}".format(file), "rb")
            data = pickle.load(fw)
            obj_list.append(data)
        return obj_list

class Classes(object):

    def __init__(self, name, random_str):
        self.name = name
        self.random_str = random_str

class Student(object):
    pass


s1 = School('上海', uuid.uuid1())
s1.save()
s2 = School('北京', uuid.uuid1())
s2.save()
school_obj_list = School.get_all()
for obj in school_obj_list:
    print("学校名为:{}".format(obj))
